package org.lanqiao.tjut.action;

import java.util.List;

import javax.annotation.Resource;

import org.lanqiao.tjut.bean.StudentBean;
import org.lanqiao.tjut.service.IStudentInfoService;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class JSONPServerAction {
	/*
	 * 使用注解@Resource层，依赖注入该属性的值，依赖于与变量名同名的一个注解对象
	 * 注意：该变量的声明使用接口，该变量通过依赖关系注入的对象值是该接口的一个具体的实现类的实例对象， 此处使用了面向接口的编程思想
	 */
	@Resource
	private IStudentInfoService stuS;

	/**
	 * 查询ALL RESTFul-GET方式请求 /stu/ 返回所有的学生信息列表
	 * 
	 * @return json对象
	 */
	@RequestMapping(value = "/jsonp/stuAllInfo/", method = RequestMethod.GET)
	public ResponseEntity<List<StudentBean>> selectAllSutdentInfo() {
		// 调用到层进行数据库查询所有学生信息
		List<StudentBean> lstStus = stuS.selectAllSutdentInfo();
		// 根据查询结果返回相关的响应response内容
		if (lstStus.isEmpty()) {
			// You many decide to return HttpStatus.NOT_FOUND
			return new ResponseEntity<List<StudentBean>>(HttpStatus.NO_CONTENT);
		}
		return new ResponseEntity<List<StudentBean>>(lstStus, HttpStatus.OK);
	}
}
